1. Field of the Invention
The present invention relates to an operating system switching control device provided in a computer system comprising an operating system switching function of exclusively switching an operating system in an active status from one operating system (called a switch-source operating system) to another operating system (called a switch-destination operating system).
In addition, the present invention further relates to a computer system which includes a plurality of operating systems each exclusively becoming an operating system in an active status, or a plurality of virtual operating systems provided by a single operating system with a plurality of setting modes, and in which an operating system switching function exclusively switches an operating system in the active status from a switch-source operating system to a switch-destination operating system
2. Description of the Related Art Conventionally, there has been known a configuration in which a plurality of operating systems (hereinafter referred to as OSs) is installed on a computer system (terminal) so that an OS in an active status can be switched between the OSs.
In the above-mentioned configuration, a suspend/resume function of OS is utilized, and a first OS in the active status becomes in a suspend status (a paused status), and thereafter a second OS in the suspend status is resumed, so that the OS in the active status is exclusively switched.
In other words, if one OS (a first OS) is in the active status, the other OS (a second OS) is in the suspend status (an inactive status).
With the application of the above-mentioned configuration, it is possible to built a computer system with two (or more) execution environments (also referred to as domains) having different usages or OS types.
For example, it is possible to build a computer system in which executable public and private domains coexist by switching an OS in the active status between a first OS used for process on private information and a second OS used for process on business information.
In addition, it is possible to build a computer system by using “Linux OS (registered trademark)” for the first OS and “Windows Mobile (registered trademark)” for the second OS.
In the above-mentioned configuration, each of the plurality of OSs exclusively becomes in the active status, and therefore an OS in the suspend status (an inactive OS) needs to be switched to become in the active status in order to perform a process.
Here, a possible trigger for switching the inactive OS to become in the active status is an event (a switch event) such as “an push of a switch button by a user”, “a reception of a telephone call or data call whose destination is the inactive OS”, “a request for executing a function on the inactive OS”, or “an expiration of a timer registered by the inactive OS”.
Accordingly, in the above-mentioned configuration, there is a challenge that, when an OS in the active status is switched from a switch-source OS to a switch-destination OS in response to an occurrence of the above-mentioned switch event, it is necessary to notify such switch event to the switch-destination OS, and to perform a suitable process for the switch event in the switch-destination OS.
In particular, a switch-destination OS is required to promptly perform a process for an urgent event (a switch event) such as reception of an incoming telephone call. For this reason, there is a need to reduce a time required for switching from a switch-source OS to a switch-destination OS.
Furthermore, a first challenge in the above-mentioned technique is to prevent a critical process from being interrupted by switching an OS in the active status.
More specifically, there is a problem that, since it is desired to reject or suspend the switching of the OS in the active status during executing the critical process such as process for a telephone call which is not desirable to be interrupted, even if a switch event occurs, it is necessary to lock the switching of the OS in the active status during executing the critical process.
A second challenge is to improve failure tolerance in the switching an OS in the active status.
Specifically, when means for locking the switching of the OS in the active status is used in order to achieve the first challenge, there is a possibility that the lock is not properly unlocked due to a failure, and that the switching of the OS in the active status becomes impossible. For this reason, it is necessary to achieve the second challenge to maintain the function of switching an OS in the active status even if a failure occurs.